#ifndef K_TASK_LIST_H
#define K_TASK_LIST_H
#pragma once

#include "KLockable.h"
#include <functional>
#include <vector>

class KTaskList : KLockable {
public:
    typedef std::function<void ()> TaskType;
public:
    KTaskList &append(TaskType &&task);
    KTaskList &append(const TaskType &task);
    void clear();
    void exec();
private:
    std::vector<TaskType> m_tasks;
};

#endif // K_TASK_LIST_H